home *** CD-ROM | disk | FTP | other *** search
/ United Public Domain Gold 2 / United Public Domain Gold 2.iso / utilities / pu397.dms / pu397.adf / Slicer / Slicer.doc < prev    next >
Text File  |  1992-11-10  |  22KB  |  563 lines

  1.  
  2. Slicer 2.1:
  3.  
  4.    Slicer is a program for creating abstract art based on mathematical
  5. functions, such as the Mandelbrot set, Julia sets, and related abstractions
  6. (chaotic dynamical systems). Features include; fast fixed or floating point
  7. arithmetic, many different functions (z²+c, z³-3a²z+b, sin(z) ...), many
  8. computation options (level sets, binary decomposition, epsilon cross,
  9. distance estimate), many coloring and rendering options, images may be
  10. recolored without recomputing, batch mode, focus, multi pass, zoom in, zoom
  11. out, pan, quick 2x zoom, and four dimensional navigation. The program is
  12. named "Slicer" because the pictures it makes can be thought of as cross
  13. sections or "slices" revealing the insides of solid (if imaginary) objects.
  14.  
  15.    For those who remember Slicer 1.x, forget it. This program is completely
  16. new, faster, more powerfull, easier to use, and I hope easier to
  17. understand.
  18.  
  19.  
  20. ************************************************************************
  21.  
  22. Distribution:
  23.  
  24.    Copyright 1992 by Gary Teachout
  25.  
  26.    This program is freeware, and may be distributed freely. It may be
  27. distributed along with other freely distributable software. It may not be
  28. sold for profit, or included as part of a commercial software product. No
  29. donations are required but they would be accepted and appreciated.
  30.  
  31.  
  32. ************************************************************************
  33.  
  34. Disclaimer:
  35.  
  36.    THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER
  37. EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO ITS FITNESS FOR ANY
  38. PARTICULAR PURPOSE. This software is experimental and IT HAS DEFECTS, if
  39. you do not accept all of the risks and responsibilities of using defective
  40. software, then DO NOT USE THIS.
  41.  
  42.  
  43. ************************************************************************
  44.  
  45. Requirments:
  46.  
  47.    Slicer needs lots of memory, 1Mb of ram or more is best. On a 1Mb system
  48. you can use 640x400 screens with about 2000 bytes to spare, overscan will
  49. require more ram.
  50.  
  51.    To save picture files the, ILBM.Library must be in your LIBS: directory.
  52. It is included and may be installed by clicking the "Instal-ILBM-Lib" icon.
  53.  
  54.  
  55. ************************************************************************
  56.  
  57. Acknowledgments:
  58.  
  59.    I would like to thank the following for helping to make Slicer work as
  60. well as it does, and for saving me a lot of work:
  61.  
  62.    Justin V. McCormick, for the PathMaster file selector.
  63.  
  64.    Software Dissidents, for the ILBM.Library.
  65.  
  66.  
  67. ************************************************************************
  68.  
  69. Getting started:
  70.  
  71.    You may start Slicer by double clicking its icon, or a Slicer project
  72. icon, or you may run it from the CLI, or a script (see "Batch mode" below).
  73. When you start Slicer, you will first see the screen format requester. The
  74. default is a 320 X 200 screen with 32 colors, low res screens will be
  75. completed faster than high res screen. Click the "START" button, if a file
  76. was specified Slicer will load and begin working on it, otherwise it will
  77. begin computing a default image of the Mandelbrot set.
  78.  
  79.  
  80. ************************************************************************
  81.  
  82. Screen Format Requester:
  83.  
  84.    When Slicer starts out you will see the screen format requester. Select
  85. the screen size and number of colors you wish to work with, then click the
  86. "start" button. Note that Slicer can create overscan sized images, but it
  87. does not display them in overscan.
  88.  
  89.  
  90. ************************************************************************
  91.  
  92. Palette Requester:
  93.  
  94.    To change the colors in the screens palette, select the "Palette" item
  95. from the "Picture" menu, and the palette requester will be displayed.
  96. Select the color to be changed by clicking that color in the grid on the
  97. right of the requester, the selected color will be marked with a solid box,
  98. the previously selected color will be marked with a dotted box. The
  99. selected color may be changed by moving either the red, green, blue,
  100. (R,G,B) or hew, saturation, luminance, (H,S,L) sliders. To create a
  101. continuous range of colors, select and set the color at one end of the
  102. range, select and set the color at the other end of the range, then click
  103. the "RANGE" button.
  104.  
  105.  
  106. ************************************************************************
  107.  
  108. Color Maps, and the Color Map Requester:
  109.  
  110.    The color map is used to specify how the screens palette colors are used
  111. within the picture. For each pixel in an image, Slicer computes a number
  112. called the dwell, the color map specifies which palette colors are used for
  113. each dwell value. The "Color Map" item from the "Picture" menu has an array
  114. of subitems that will create an assortment of convenient color maps. Each
  115. time you create a new image (by zooming or using any item from the "Slice"
  116. menu), it will be necessary to try a few new color maps.
  117.  
  118.    Selecting the "Edit" subitem will bring up the color map requester for
  119. customizing the color map. The graph at the top is a hystogram of the dwell
  120. values for the slice. With the "RANGE" button, you can fill in part of the
  121. color map with a range of colors.
  122.  
  123.  
  124. ************************************************************************
  125.  
  126. Edit Slice Specs Requesters:
  127.  
  128.    With these requesters you may specify which abstraction you want to see,
  129. the location, orintation, magnification, and other details of the slice.
  130.  
  131. Specs Requester:
  132.  
  133.    Dwell Limit             Maximum number of iterations. Generaly the
  134.                            larger this number is, the more detail will be
  135.                            revailed, and the longer it will take to
  136.                            complette the picture. As you increase
  137.                            magnifcation (zoom in) you will also need to
  138.                            increase the dwell limit. See the "Arithmetic"
  139.                            section below.
  140.  
  141.    Magnification           The zoom factor. The larger the magnification,
  142.                            the smaller the area of the slice covered in the
  143.                            image.
  144.  
  145.    Location                These four variables specify the location in
  146.                            four dimensions of the point in the center of
  147.                            the image. "x", and "y" are the components of
  148.                            the complex variable "z" (the orbiting or
  149.                            chaotic variable). "a", and "b" are the
  150.                            components of the complex variable "c" (the
  151.                            fixed or reference variable).
  152.  
  153.    Extra Variables
  154.                            These four variables have differant meenings for
  155.                            differant functions. "f", and "g" may be the
  156.                            components of the complex variable "h". "q" and
  157.                            others may be used as escape thresholds. See the
  158.                            "Arithmetic" section below.
  159.  
  160.    Mouse Location          These buttons set the location or magnification
  161.    Mouse Magnification     to that of the region previously selected with
  162.                            the mouse. See "Regions" below.
  163.  
  164.  
  165.    Orientation             These buttons set the plane of the slice
  166.                            parallel to one of the six orthogonal planes.
  167.                            You are not limited to these six planes, see the
  168.                            "Move Requester" below.
  169.  
  170.       a b                  This plane is parallel to the Mandelbrot set
  171.                            (the fixed or reference plane).
  172.  
  173.       x y                  This plane is a Julia set (the plane where
  174.                            chaotic motion takes place).
  175.  
  176.       a x                  These planes have each dimension aligned with
  177.       a y                  one dimension of each of the planes above.
  178.       x y                  Allowing you to see slices perpendicular (edge
  179.       y b                  on) to the Mandelbrot and Julia sets.
  180.  
  181.    Arithmetic              The up and down arrow buttons allow you to
  182.                            select which function you wish to see, and the
  183.                            numerical precision. See the "Arithmetic"
  184.                            section below.
  185.  
  186.    Specs                   With these buttons you may switch between the
  187.    Move                    three slice specs requesters.
  188.    Basis
  189.  
  190.    START                   Begins creating a new image based on the
  191.                            information specified above. WARNING the
  192.                            previous image will be lost.
  193.  
  194.    RESET                   Restore the information above to that of the
  195.                            current image.
  196.  
  197.    CANCEL                  Ignore the information above and return to the
  198.                            current image.
  199.  
  200.  
  201. Move Requester:
  202.  
  203.    Distance                This is the relative distance used by the Move
  204.                            buttons below. Where a distance of one is equal
  205.                            to one half the width of the screen.
  206.  
  207.    Move                    Each of these buttons will move the center of
  208.       x+                   the slice "Distance" in the specified direction.
  209.       y+                   "x+" and "y+" will pan within the plane of the
  210.       a+                   current slice, "a+" and "b+" will move the plane
  211.       b+                   perpendicular to the current slice.
  212.  
  213.    Angle                   This is the angle (in degrees) used by the
  214.                            rotate buttons below.
  215.  
  216.    Rotate                  Each of these buttons will rotate the plane of
  217.       x y                  the slice.
  218.       x a
  219.       y a
  220.       a b
  221.       x b
  222.       y b
  223.  
  224.  
  225. Basis Requester:
  226.  
  227.    Basis vectors           These numbers are used internally to keep track
  228.                            of the orientation of the slice.
  229.  
  230.    Aspect Ratio            Pixel width divided by pixel height.
  231.  
  232.       D                    Set aspect ratio to the default for the screen
  233.                            size.
  234.  
  235.  
  236. ************************************************************************
  237.  
  238. Arithmetic:
  239.  
  240. 1     z=z²+c                     Level Sets              48bit
  241.  
  242.    This is the traditional way of creating images of the Mandelbrot and
  243.    Julia sets. You may start your search with the default image, or set the
  244.    dwell limit at 32 or more, the magnification at 0.5, each location
  245.    variable at zero, and "q" (the escape threshold) from the extra
  246.    variables at four.
  247.  
  248. 2     z=z²+c                     Level Sets              IEEE
  249.  
  250.    Same as above, but computed at a higher level of precision.
  251.  
  252. 3     z=z²+c                     Binary Decomposition    48bit
  253.  
  254.    Binary decomposition surrounds the set with a checkerboard like pattern.
  255.    These are best on a high res screen with two, or four colors. Start your
  256.    search as above, but with "q" set to 150.
  257.  
  258. 4     z=z²+c                     Binary Decomposition    IEEE
  259.  
  260.    Same as above, but computed at a higher level of precision. "q" may be
  261.    set from 150, to 10000.
  262.  
  263. 5     z=z²+c                     Epsilon Cross           48bit
  264.  
  265.    Epsilon cross shows a tangle of intersecting arcs inside and outside of
  266.    the set, the "f" and "g" variables set the thickness of these arcs.
  267.    These are best on a high res screen with two, or four colors. Start your
  268.    search with the dwell limit at 32 or more, the magnification at 0.5,
  269.    each location variable at zero, "f" and "g" at 0.0001, and "q" at four.
  270.  
  271. 6     z=z²+c                     Epsilon Cross           IEEE
  272.  
  273.    Same as above, but computed at a higher level of precision.
  274.  
  275. 7     z=z²+c                     Distance Estimate / f   IEEE
  276.  
  277.    This surrounds the set with an aura based on an estimate of the distance
  278.    to the set divided by "f". These distance estimates are correct only for
  279.    the "a b", and "x y" orientations, though other orientations may still
  280.    be interesting. Start your search with the dwell limit at 100 or more,
  281.    the magnification at 0.5, each location variable at zero, "f" should be
  282.    set similar to the magnification, and "q" may be set from 150, to
  283.    100000.
  284.  
  285. 8     z=z²+c                     Distance Disk < r       IEEE
  286.  
  287.    This surrounds the set with a thin border if an estimate of the distance
  288.    to the set is less than "r". This mode works only for the "a b", and
  289.    "x y" orientations, also the quick zoom (2x) should not be used. These
  290.    are best on a high res screen with two, or four colors. Start your
  291.    search with the dwell limit at 100 or more, the magnification at 0.5,
  292.    each location variable at zero, "r" set at 0.5, and "q" may be set from
  293.    150, to 100000.
  294.  
  295. 9     z=z²+(c*1^n)               Level Sets              IEEE
  296.  
  297.    Alternates between z²+c and z²-c. Set specs like #1 above.
  298.  
  299. 10    z=z²+¹/c                   Level Sets              IEEE
  300.  
  301.    The Mandelbrot set turned inside-out. Set specs like #1 above.
  302.  
  303. 11    h=h³-3c²h+z                Level Sets              IEEE
  304.  
  305.    The four-dimensional Mandelbrot set (usualy written z=z³-3a²+b). Set "f"
  306.    and "g" to zero, "q"to four. If using the "a b" orientation "x" and "y"
  307.    must not both be zero.
  308.  
  309. 12    z=z³-3c²z+h                Level Sets              IEEE
  310.  
  311.    The two dimensions from the four-dimensional Mandelbrot set, and two
  312.    from its Julia sets. If using the "a b" orientation "f" and "g" must not
  313.    both be zero.
  314.  
  315. 13    z=z³-3h²z+c                Level Sets              IEEE
  316.  
  317.    The other two dimensions from the four-dimensional Mandelbrot set, and
  318.    two from its Julia sets.
  319.  
  320. 14    z=(2z³-1)/3z²+c            Level Sets              IEEE
  321.  
  322.    This is Newtons method to solve z³-1=0. Start with the the dwell limit
  323.    at 32 or more, the magnification at 0.5, each location variable at zero,
  324.    "r" at 0.00005, and the orientation set to "x y".
  325.  
  326. 15    z=((z²+c-1)/(2z+c-2))²     Level Sets              IEEE
  327.  
  328.    Start with the dwell limit at 32 or more, the magnification at 0.5, each
  329.    location variable at zero, "r" set at 0.00005, and "q" may be set at 100
  330.    or more.
  331.  
  332. 16    z=sin(z)*c                 Level Sets              IEEE
  333.  
  334.    Start with the dwell limit set from 16 to 32, the magnification at 0.15,
  335.    "x", "y", and "b" at zero, "a" at one, "q" at 50, and the orientation
  336.    set to "x y".
  337.  
  338. 17    z=cos(z)*c                 Level Sets              IEEE
  339.  
  340.    Start with the dwell limit set from 16 to 32, the magnification at 0.5,
  341.    "x", "y", and "b" at zero, "a" at about 2.95, "q" at 50, and the
  342.    orientation set to "x y".
  343.  
  344. 18    z=c*e^z                    Level Sets              IEEE
  345.  
  346.    Start with the dwell limit set from 16 to 32, the magnification at 0.2,
  347.    "x" at two, "a" at about 0.47, "y" and "b" at zero, "q" at 50, and the
  348.    orientation set to "x y".
  349.  
  350. 19    v=(x,y,a,)v(1-v)           Lyapunov Space          IEEE
  351.  
  352.    This iterates the logistic formula (usually written "x=rx(1-x)") and
  353.    replaces "r" with each of the location components in turn. The extra
  354.    veriables "f", "g", and "q" specify how many times each location
  355.    variable "x", "y", or "a" is used before moving on to the next one. The
  356.    dwell limit sets the number of initial iterations (the settling down
  357.    period). "r" sets the number of iterations for calculating the Lyapunov
  358.    exponent. For two-dimensional Lyapunov space start with the dwell limit
  359.    at 50 or more, "r" at 200, the manification at 0.8, "x" at three, "y" at
  360.    3.4, "f" and "g" at one (or some larger integers), orientation set to
  361.    "x y". For three-dimensional Lyapunov space set "q" to some positive
  362.    integer, and try different locations and orientations (note that this is
  363.    three dimensional, the "b" dimension is not used).
  364.  
  365. 20    ???
  366.  
  367.    At this time there are 19 functions, but more may easily be added. If
  368.    you know of a function or algorthim that makes interesting pictures,
  369.    send me a description and it may be included in a future version of
  370.    Slicer.
  371.  
  372.  
  373. ************************************************************************
  374.  
  375. Regions:
  376.  
  377.    To select a region within an image, position the mouse pointer over the
  378. center of the region and press the mouse button. A box will be highlighted,
  379. to change the size of the region drag the mouse in any direction (the box
  380. that appears before you move the mouse, is a fast 2x zoom). When you
  381. release the mouse button, the location and size are stored for use by the
  382. "Zoom In", "Zoom Out", "Pan", and "Focus" menu items. You may also zoom in
  383. on the region by clicking the menu button while holding the mouse button
  384. then releasing both buttons.
  385.  
  386.  
  387. ************************************************************************
  388.  
  389. Batch Mode:
  390.  
  391.    When run from the CLI or from a script file, Slicer may be programmed to
  392. save its results and quit automatically (see the "When Complete" menu item
  393. below). This allows you to use a script to keep your Amiga busy all night
  394. completing many pictures.
  395.  
  396.    SLICER [<project>]
  397.  
  398. This will run Slicer as if it were run from the workbench.
  399.  
  400.    SLICER -b <project> [<picture>]
  401.  
  402. With this option, Slicer will complete the project and save it, then quit.
  403. If a picture file name is included, it will also save it as a picture file.
  404.  
  405.    SLICER -bp <project> <picture>
  406.  
  407. With this option Slicer will complete the project and save only the picture
  408. file, then quit.
  409.  
  410.  
  411. ************************************************************************
  412.  
  413. MENUS:
  414.  
  415. Project                          This menu controls what Slicer is doing
  416.                                  with the entire project.
  417.  
  418.    Load                          Load a Slicer project file with the
  419.                                  requested file name.
  420.  
  421.    Save                          Save a Slicer project file with the
  422.                                  existing file name.
  423.  
  424.    Save as                       Save a Slicer project file with the
  425.                                  requested file name.
  426.  
  427.    Save Specs                    Save a Slicer project file without any
  428.                                  image data (specifications only).
  429.  
  430.    Focus                         Direct Slicer to complete a portion of the
  431.                                  image first.
  432.  
  433.       ON             F           Begin to focus on the region selected
  434.                                  with the mouse.
  435.  
  436.       OFF                        Return to working on the whole image.
  437.  
  438.    Multi Pass                    Toggle multi pass on/off.
  439.  
  440.    When Complete                 Direct Slicer to take the following
  441.                                  action when the project is complete.
  442.  
  443.       Save Picture               Save image as IFF ILBM file.
  444.  
  445.       Save Project               Save Slicer project file.
  446.  
  447.       Quit                       Exit Slicer.
  448.  
  449.    Quit              Q           Exit Slicer.
  450.  
  451. Picture                          This menu controls how the picture is
  452.                                  rendered.
  453.  
  454.    Save Picture                  Save image as IFF ILBM file.
  455.  
  456.    Color Map                     Change the way the palette colors are used
  457.                                  within the image.
  458.  
  459.       Edit           C           Use the color map editor to create a
  460.                                  custom color map.
  461.  
  462.       a 1   a 2   a 4            Select from default color maps.
  463.  
  464.       b     b     ...
  465.  
  466.       c     ...   ...
  467.  
  468.       ...   ...   ...
  469.  
  470.    Palette           P           Use palette requester to change the colors
  471.                                  in the palette.
  472.  
  473.    Cycle Colors                  Rotate colors within the palette.
  474.  
  475.       1+ Up          1
  476.  
  477.       1+ Down        2
  478.  
  479.       Up             3
  480.  
  481.       Down           4
  482.  
  483.       Restore        R
  484.  
  485.    Title Bar         T           Toggle title bar on/off.
  486.  
  487.    Pointer           A           Toggle mouse pointer on/off.
  488.  
  489. Slice                            This menu controls what picture is being
  490.                                  created.
  491.  
  492.    Zoom In           Z           Zoom in on the region selected with
  493.                                  the mouse.
  494.  
  495.    Zoom Out                      Zoom out 2x centered on the region
  496.                                  selected with the mouse.
  497.  
  498.    Pan                           Recenter the slice on the region selected
  499.                                  with the mouse.
  500.  
  501.    Edit                          Create a new slice.
  502.  
  503.       Specs          S           Edit slice specsifications.
  504.  
  505.       Move           M           Relative move in four dimensions.
  506.  
  507.       Basis          B           Access to some arcane internal
  508.                                  variables.
  509.  
  510.  
  511. ************************************************************************
  512.  
  513. Recommended reading:
  514.  
  515.    The Beauty of Fractals.
  516.       Heinz-Otto Peitgen and Peter H. Richter.
  517.       Springer-Varlag, 1986.
  518.  
  519.    The Science of Fractal Images.
  520.       Edited by Heinz-Otto Peitgen and Dietmar Saupe.
  521.       Springer-Varlag, 1988.
  522.  
  523.    The Fractal Geometry of Nature.
  524.       Benoit B. Mandelbrot.
  525.       W. H. Freeman and Company, 1983.
  526.  
  527.    Turtle Geometry. The Computer as a Medium for Exploring Mathematics.
  528.       Harold Abelson and Andrea diSessa
  529.       MIT Press 1981
  530.  
  531.    Computer Recreations. A computer microscope zooms in for a look at the
  532.       most complex object in mathematics.
  533.       A. K. Dewdney in Scientific American, Vol. 253, No. 2,
  534.       pages 16-24; August 1985.
  535.  
  536.    Computer Recreations. Beauty and profundity: the Mandelbrot set and a
  537.       flock of its cousins called Julia.
  538.       A. K. Dewdney in Scientific American, Vol. 257, No. 5,
  539.       pages 140-145; November 1987.
  540.  
  541.    Computer Recreations. (Response from readers).
  542.       A. K. Dewdney in Scientific American, Vol. 258, No. 3,
  543.       page 117; March 1988.
  544.  
  545.    Computer Recreations. A tour of the Mandelbrot set aboard the Mandelbus.
  546.       A. K. Dewdney in Scientific American, Vol. 260, No. 2,
  547.       pages 108-111; February 1989.
  548.  
  549.    Mathematical Recreations. Leaping into Lyapunov Space.
  550.       A. K. Dewdney in Scientific American, Vol. 265, No. 3,
  551.       pages 178-180; September 1991.
  552.  
  553.  
  554. ************************************************************************
  555.  
  556.    Please contact me if you have any comments, or bugs to report.
  557.  
  558.    Gary Teachout 
  559.    10532  66 Place, W
  560.    Mukilteo, WA  98275
  561.    USA
  562.  
  563.